Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync to upstream/release/645 #1440

Merged
merged 162 commits into from
Sep 27, 2024
Merged

Sync to upstream/release/645 #1440

merged 162 commits into from
Sep 27, 2024

Conversation

aatxe
Copy link
Collaborator

@aatxe aatxe commented Sep 27, 2024

In this update, we continue to improve the overall stability of the new type solver. We're also shipping some early bits of two new features, one of the language and one of the analysis API: user-defined type functions and an incremental typechecking API.

If you use the new solver and want to use all new fixes included in this release, you have to reference an additional Luau flag:

LUAU_DYNAMIC_FASTINT(LuauTypeSolverRelease)

And set its value to 645:

DFInt::LuauTypeSolverRelease.value = 645; // Or a higher value for future updates

New Solver

  • Fix a crash where scopes are incorrectly accessed cross-module after they've been deallocated by appropriately zeroing out associated scope pointers for free types, generic types, table types, etc.
  • Fix a crash where we were incorrectly caching results for bound types in generalization.
  • Eliminated some unnecessary intermediate allocations in the constraint solver and type function infrastructure.
  • Built some initial groundwork for an incremental typecheck API for use by language servers.
  • Built an initial technical preview for user-defined type functions, more work still to come (including calling type functions from other type functions), but adventurous folks wanting to experiment with it can try it out by enabling FFlag::LuauUserDefinedTypeFunctionsSyntax and FFlag::LuauUserDefinedTypeFunctions in their local environment. Special thanks to @joonyoo181 who built up all the initial infrastructure for this during his internship!

Miscellaneous changes


Internal Contributors:

Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Hunter Goldstein [email protected]
Co-authored-by: Jeremy Yoo [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

aatxe and others added 30 commits November 3, 2023 12:47
- Add SUBRK and DIVRK bytecode instructions
    - Enables future performance optimizations

Miscellaneous
- Small performance improvements to new non-strict mode
- Introduce more scripts for fuzzing
- Improcements to dataflow analysis
Co-authored-by: Alexander McCord <[email protected]>
Co-authored-by: Andy Friesen <[email protected]>
Co-authored-by: Aviral Goel <[email protected]>
Co-authored-by: David Cope <[email protected]>
Co-authored-by: Lily Brown <[email protected]>
Co-authored-by: Vyacheslav Egorov <[email protected]>
@joonyoo181
Copy link
Contributor

This is so exciting! I am super happy to have been given the chance to contribute 🙂

@aatxe aatxe requested a review from vegorov-rbx September 27, 2024 18:17
@aatxe aatxe merged commit 02241b6 into master Sep 27, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Compilation error in TimeTrace.h when LUAU_ENABLE_TIME_TRACE enabled on ubuntu 20.04
7 participants